home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Atari Compendium
/
The Atari Compendium (Toad Computers) (1994).iso
/
files
/
umich
/
music
/
midimovr.zoo
/
midimovr.doc
next >
Wrap
Text File
|
1992-07-18
|
27KB
|
590 lines
Introduction to MidiMover
-------------------------
This file explains the use of MidiMover, Hybrid Arts' MIDI File converter.
MidiMover can convert between Hybrid's .SNG files and the "MIDI File 1.0"
standard. It supports both format 0 and format 1 MIDI Files, and can in
fact be used to convert between those two formats. It also reads MacBinary
(some MIDI Files uploaded by Mac users) that some other MIDI File converters
may not handle, and can convert these to standard data files that non-Mac
computers (including the ST) use.
All the MIDI File conversion features of MidiMover are also found in the
Official Release Version of the MidiTrack ST Series sequencers (SmpteTrack,
SyncTrack, and EditTrack). In fact, MidiMover is simply a modified version
of MidiTrack ST, with only the functions needed for converting MIDI Files
retained, along with a simple playback capability.
Please include this documentation if you want to give MidiMover to anyone
you know (MidiMover is technically not "public domain", being Copyright
1986/89 Hybrid Arts Inc, but we give you permission to distribute it
freely; consider it "freeware"!). Portions of this file are included in
Appendix C which is supplied with the Official Release Version update of
the MidiTrack ST Series sequencers.
This file has been formatted for either Showing or Printing. When printed
it will automatically skip perforations (if you use standard 66-line pages).
What Are MIDI Files?
--------------------
MIDI itself, as sent along MIDI cables, is a standard that has been agreed
upon by many manfucturers. You can interconnect most keyboards and other
instruments using MIDI and they will "talk" to each other, "understanding"
the same language.
But when a sequencer records MIDI information on a computer, there are
many things it needs to keep track of in addition to the MIDI events,
such as _when_ the events should be played back, how they are organized
into tracks, what the tempo of the song is, which tracks you want muted
or protected, etc. Different sequencers need to store different amounts
and kinds of information, and so each sequencer uses a different file
format. You can not, in general, take a file created with one brand
of sequencer and read it into another brand of sequencer, even if both
sequencers use the same kinds of data disks, because each sequencer
expects the information in the file to be organized differently.
So it used to be that, if you wanted to transfer a song between two
different sequencers, the only way you could do it was to run each
sequencer on a separate computer, connect the two computers with MIDI
cables, and simply _play_ the song in one sequencer while _recording_
it in real time on the other sequencer. Even if you have the two
computers handy, this can be a time-consuming procedure. And most
people don't have multiple computers just sitting around waiting to
be used for such sequencer-to-sequencer transfers!
Now, however, with the arrival of MIDI Files, transferring songs
between many sequencers is much simpler. You simply _save_ the song
to disk _as a MIDI File_ in one sequencer, and _load_ the song in
MIDI File format into the other sequencer!
"MIDI Files" is the official name for the sequencer file standard, which
was first developed by Dave Oppenheim of Opcode Systems on the Macintosh,
and has now been approved by the MIDI Manufacturers' Assocation (MMA),
the organization that maintains the MIDI Spec. Most sequencer developers
have added (or are in the process of adding) MIDI File support for their
programs, either through capabilities built into the program or through
separate conversion utilities. Hybrid Arts has done both: the MidiTrack
ST Series programs (SmpteTrack, SyncTrack, and EditTrack) have MIDI File
conversion built-in; there is also a free separate conversion program
called MidiMover, for users of the other Hybrid Arts programs that use
.SNG files, such as EZ-Track Plus, EZ-Score Plus, and Ludwig.
An important point needs to be made here: MIDI Files are intended as a
sequencer _interchange_ format only. That is, they are specifically
designed for the purpose of moving information from one sequencer to
another. Thus they deal only with the most common type of information
that is likely to be used by most sequencers, such as MIDI data, tempos,
etc. They do not deal with types of information which tend to be specific
to the design of a particular sequencer, such as the way tracks are
numbered, mute settings, loops, synchronization type, etc.
It is not intended that MIDI Files be used as the _native_ method of
storage in a particular program, except perhaps some programs whose main
function is to create data for use by other programs rather than for later
use by that same program. (In fact, many sequencers use the terms Import
and Export to refer to saving and loading MIDI Files. Hybrid Arts simply
calls it Saving and Loading MIDI Files, as opposed to Song Files, since
Hybrid's sequencers use the term Import for another meaning -- Importing
a single Track from another Song File.)
MIDI File Formats
-----------------
MIDI Files come in three possible formats: format 0, 1, or 2.
Format 0 is one single track representing the whole song. This is the
most common-denominator form of interchange. It is analogous to
interconnecting two computers by MIDI cables and playing the whole
song from one sequencer into the other and saving it as one track.
Assuming the receiving sequencer has unmix-by-channel capabilities,
that track can, of course, be later split into multiple tracks.
Format 1 is multiple tracks intended to play at the same time. This
format most closely matches linear (not pattern-oriented) multi-track
sequencers. In the interconnected-computers analogy, this is like
playing each track soloed in the sending sequencer and recording it
as a separate track in the receiving sequencer.
Format 2 is single-track patterns intended to play one after the other.
This format is intended for pattern-oriented sequencers.
Almost all programs that support MIDI Files support at least format 0.
Many multi-track sequencers (even some pattern-oriented sequencers
that have multiple tracks in each pattern) also support format 1.
Few if any sequencers to date support format 2.
MidiMover supports both format 0 and format 1.
What Is Included in a MIDI File?
--------------------------------
A format 0 file contains all the information in one track. A format 1
file contains all tempo/meter information (plus SMPTE start time, if
applicable) in the first track, and all MIDI information in one or
more tracks that follow.
At the beginning of a MIDI File is a number called _division_ which
indicates how many _ticks per quarter note_ are used when representing
the time at which each MIDI event is sent. Hybrid Arts sequencers use
96 ticks per quarter note, and MidiMover writes MIDI Files with that
division value. As long as you send MIDI Files between sequencers that
have the same division value (in this case, between sequencers using 96
ticks per quarter note), you will not lose any resolution in the transfer.
If you send a MIDI File between sequencers that have different division
values, then only the resolution of the lower-resolution sequencer will
be maintained.
For example, if you send data from a 24-tick sequencer into MidiTrack
ST, you can only end up with events at ticks such as .00, .04, .08, etc.
If you send data from MidiTrack ST _into_ a 24-tick sequencer, you will
effectively be _quantizing_ the whole track slightly, as the events will
be placed on ticks which correspond to .00, .04, .08, etc. (If the
divisions of the two sequencers are not divisible by each other, such
as going between a 96-tick and a 120-tick sequencer, some additional
one-tick errors may occur in a back-and-forth conversion. This will
not be cumulative, however, if you write and read the MIDI File several
times.)
In the first (tempo/meter) track of a format 1 MIDI Fil